.TH "/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/socketmanager.h" 3 "19 Jun 2008" "Version 0.1" "TorTella" \" -*- nroff -*-
.ad l
.nh
.SH NAME
/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/socketmanager.h \- 
.SH SYNOPSIS
.br
.PP
\fC#include <sys/types.h>\fP
.br
\fC#include <sys/socket.h>\fP
.br
\fC#include 'common.h'\fP
.br
\fC#include 'httpmanager.h'\fP
.br

.SS "Funzioni"

.in +1c
.ti -1c
.RI "int \fBcreate_tcp_socket\fP (const char *dst_ip, int dst_port)"
.br
.RI "\fICrea un socket di connessione remota ovvero si connette ad un server remoto. \fP"
.ti -1c
.RI "int \fBcreate_listen_tcp_socket\fP (const char *src_ip, int src_port)"
.br
.RI "\fICrea un socket d'ascolto, ovvero un server TCP in attesa di connessioni. \fP"
.ti -1c
.RI "int \fBdelete_socket\fP (int sock_descriptor)"
.br
.RI "\fIElimina un socket ovvero chiude una connessione, mettendo il socket nello stato di TIME_WAIT. \fP"
.ti -1c
.RI "int \fBlisten_http_packet\fP (int listen_socket)"
.br
.RI "\fIint listen_packet(int listen_socket, char* buffer, unsigned int mode); \fP"
.ti -1c
.RI "int \fBrecv_http_packet\fP (int con_socket, char **buffer)"
.br
.RI "\fILegge il pacchetto in ingresso e ritorna il numero di caratteri. \fP"
.ti -1c
.RI "int \fBsend_packet\fP (int sock_descriptor, char *buffer, int len)"
.br
.RI "\fIPermette di scrivere sul socket connesso specificato dal relativo descrittore. \fP"
.ti -1c
.RI "int \fBrecv_packet\fP (int sock_descriptor, char **buffer)"
.br
.RI "\fIAttende la ricezione di un pacchetto, avente come dimensione massima quella pari al valore assunto dal parametro BUFFER_LEN. \fP"
.ti -1c
.RI "int \fBrecv_sized_packet\fP (int sock_descriptor, char **buf, int \fBmax_len\fP)"
.br
.RI "\fIAttende la ricezione di un pacchetto, prefissando il valore massimo(max_len) di byte di un blocco di dati del pacchetto. \fP"
.ti -1c
.RI "char * \fBget_dest_ip\fP (int socket)"
.br
.RI "\fIchar *recv_http_packet(int sock_descriptor,char* buffer, int *len); \fP"
.ti -1c
.RI "\fBu_int4\fP \fBget_dest_port\fP (int socket)"
.br
.RI "\fIPermette di ottenere il numero di porta del peer assocciato al socket, passato come parametro. \fP"
.ti -1c
.RI "int \fBshutdown_socket\fP (int sock_descriptor)"
.br
.RI "\fIPermette la chiusura asimmetrica di una connessione TCP. \fP"
.in -1c
.SH "Documentazione delle funzioni"
.PP 
.SS "int create_listen_tcp_socket (const char * src_ip, int src_port)"
.PP
Crea un socket d'ascolto, ovvero un server TCP in attesa di connessioni. 
.PP

.PP
creazione socket
.PP
inizializzazione a 0 della struttura sockaddr_in
.PP
conversione dalla rappresentazione testuale/binaria dell'indirizzo al valore binario da inserire nella struttura sockaddr_in
.PP
Per convertire l' indirizzo IP dalla notazione puntata in formato ASCII al network byte order in formato binario
.PP
funzione che permette di impostare le caratteristiche del socket. In questa funzione grazie all'utilizzo del parametro SO_REUSEADDR si ha la possibilita' di riutilizzare un indirizzo locale,modificando il comportamento della bind che fallisce in caso l'indirizzo sia gia' in uso in un altro socket.
.PP
funzione che permette di impostare le caratteristiche del socket. In questa funzione grazie all'utilizzo del parametro SO_KEEPALIVE si ha la possibilita' di gestire le persistenza delle connessioni.
.PP
funzione utilizzata per la fase di inizializzazione dell'indirizzo ip e del numero di porta utilizzati dal socket, inoltre serve a far sapere al SO a quale processo vanno inviati i dati ricevuti dalla rete.
.PP
funzione utilizzata per porre il socket creato dallo stato di CLOSED a quello di LISTEN, specificando il numero di connessioni che possono essere accettate dal server 
.PP
Definizione alla linea 84 del file socketmanager.c.
.SS "int create_tcp_socket (const char * dst_ip, int dst_port)"
.PP
Crea un socket di connessione remota ovvero si connette ad un server remoto. 
.PP

.PP
creazione socket
.PP
inizializzazione a 0 della struttura sockaddr_in
.PP
conversione dalla rappresentazione testuale/binaria dell'indirizzo al valore binario da inserire nella struttura sockaddr_in
.PP
Per convertire l' indirizzo IP dalla notazione puntata in formato ASCII al network byte order in formato binario
.PP
funzione che permette al client TCP di aprire una connessione ad un server TCP
.PP
funzione che permette di impostare le caratteristiche del socket. In questa funzione grazie all'utilizzo del parametro SO_KEEPALIVE si ha la possibilita' di gestire le persistenza delle connessioni. 
.PP
Definizione alla linea 32 del file socketmanager.c.
.SS "int delete_socket (int sock_descriptor)"
.PP
Elimina un socket ovvero chiude una connessione, mettendo il socket nello stato di TIME_WAIT. 
.PP

.PP
funzione utilizzata per permettere la chiusura attiva della connessione identificata dal descrittore 
.PP
Definizione alla linea 157 del file socketmanager.c.
.SS "char* get_dest_ip (int socket)"
.PP
char *recv_http_packet(int sock_descriptor,char* buffer, int *len); 
.PP
Permette di ottenere l'indirizzo ip e il numero di porta del peer assocciato al socket, passato come parametro 
.PP
Definizione alla linea 296 del file socketmanager.c.
.SS "\fBu_int4\fP get_dest_port (int socket)"
.PP
Permette di ottenere il numero di porta del peer assocciato al socket, passato come parametro. 
.PP
Definizione alla linea 313 del file socketmanager.c.
.SS "int listen_http_packet (int listen_socket)"
.PP
int listen_packet(int listen_socket, char* buffer, unsigned int mode); 
.PP
funzione che ritorna il nuovo descrittore di socket e l'indirizzo del client connesso, nel caso la chiamata di sistema accept() abbia avuto un esito positivo 
.PP
permette al server di prendere dal backlog la prima connessione completato sul socket specificato 
.PP
Definizione alla linea 175 del file socketmanager.c.
.SS "int recv_http_packet (int con_socket, char ** buffer)"
.PP
Legge il pacchetto in ingresso e ritorna il numero di caratteri. 
.PP
Definizione alla linea 190 del file socketmanager.c.
.SS "int recv_packet (int sock_descriptor, char ** buffer)"
.PP
Attende la ricezione di un pacchetto, avente come dimensione massima quella pari al valore assunto dal parametro BUFFER_LEN. 
.PP
Definizione alla linea 231 del file socketmanager.c.
.SS "int recv_sized_packet (int sock_descriptor, char ** buf, int max_len)"
.PP
Attende la ricezione di un pacchetto, prefissando il valore massimo(max_len) di byte di un blocco di dati del pacchetto. 
.PP
Definizione alla linea 240 del file socketmanager.c.
.SS "int send_packet (int sock_descriptor, char * buffer, int len)"
.PP
Permette di scrivere sul socket connesso specificato dal relativo descrittore. 
.PP

.PP
Questa blocco si potrebbe ritentare per n volte, dove n e' un parametro di configurazione. 
.PP
Definizione alla linea 206 del file socketmanager.c.
.SS "int shutdown_socket (int sock_descriptor)"
.PP
Permette la chiusura asimmetrica di una connessione TCP. 
.PP
Definizione alla linea 329 del file socketmanager.c.
.SH "Autore"
.PP 
Generato automaticamente da Doxygen per TorTella a partire dal codice sorgente.
